/*
 * OpenParts
 * A dynamic-loading components framework for GWT
 * Copyright (C) 2011 Christophe Bouthier  [chris{AT}binary-gastronome{DOT}fr]
 *
 * This work is partially based on work I have done at INRIA (http://www.inria.fr) 
 * in the context of the Qualipso European Project (http://qualipso.org/),
 * The work done at INRIA is Copyright (C) 2006-2011 INRIA
 *
 * This work is distributed under the LGPL version 3
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation. See the GNU
 * Lesser General Public License in LGPL.txt for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */
package fr.openparts.OpenParts.client;

/**
 * Contains all the predefined commands that view proxy and slot proxy can exchange.
 * 
 * List of all proxy commands:
 * <ul>
 * <li>setStyleName(String style)</li>
 * <li>addStyleName(String style)</li>
 * <li>removeStyleName(String style)</li>
 * <li>setStylePrimaryName(String style)</li>
 * <li>addStyleDependentName(String styleSuffix)</li>
 * <li>removeStyleDependentName(String styleSuffix)</li>
 * <li>setWidth(String width)</li>
 * <li>setHeight(String height)</li>
 * <li>setSize(String width, String height)</li>
 * <li>setVisible(boolean visible)</li>
 * </ul>
 * 
 * @author Christophe Bouthier [chris{AT}binary-gastronome{DOT}fr]
 * @creation.date 06 May 2011
 */
public interface OPProxyCommands {

    /**
     *  common prefix to all proxy commands, so that it's easier to filter messages that are not proxy commands
     */
    static final String PREFIX_OP_PROXY_COMMANDS = "op_proxy_command_";
    
    
    // --- commands ---

    /**
     * Command for setStyleName.
     */
    static final String OP_PROXY_COMMAND_SET_STYLE_NAME = "op_proxy_command_set_style_name";
    
    /**
     * Command for addStyleName.
     */
    static final String OP_PROXY_COMMAND_ADD_STYLE_NAME = "op_proxy_command_add_style_name";
    
    /**
     * Command for removeStyleName.
     */
    static final String OP_PROXY_COMMAND_REMOVE_STYLE_NAME = "op_proxy_command_remove_style_name";
    
    /**
     * Command for setStylePrimaryName.
     */
    static final String OP_PROXY_COMMAND_SET_STYLE_PRIMARY_NAME = "op_proxy_command_set_style_primary_name";
    
    /**
     * Command for addStyleDependentName.
     */
    static final String OP_PROXY_COMMAND_ADD_STYLE_DEPENDENT_NAME = "op_proxy_command_add_style_dependent_name";

    /**
     * Command for removeStyleDependentName.
     */
    static final String OP_PROXY_COMMAND_REMOVE_STYLE_DEPENDENT_NAME = "op_proxy_command_remove_style_dependent_name";

    /**
     * Command for setWidth.
     */
    static final String OP_PROXY_COMMAND_SET_WIDTH = "op_proxy_command_set_width";

    /**
     * Command for setHeight.
     */
    static final String OP_PROXY_COMMAND_SET_HEIGHT = "op_proxy_command_set_height";

    /**
     * Command for setSize.
     */
    static final String OP_PROXY_COMMAND_SET_SIZE = "op_proxy_command_set_size";

    /**
     * Command for setVisible.
     */
    static final String OP_PROXY_COMMAND_SET_VISIBLE = "op_proxy_command_set_visible";

    
    // --- parameters keys ---

    /**
     * Simple value, used when there is only one parameter
     */
    static final String OP_PROXY_PARAM_VALUE = "op_proxy_param_value";
    
    /**
     * First value, used when there is more than one parameter
     */
    static final String OP_PROXY_PARAM_VALUE_1 = "op_proxy_param_value_1";
    
    /**
     * Second value, used when there is more than one parameter
     */
    static final String OP_PROXY_PARAM_VALUE_2 = "op_proxy_param_value_2";

    
    // --- parameters values ---

    /**
     * True, used to pass a boolean true value in parameter.
     */
    static final String OP_PROXY_VALUE_TRUE = "true";

    /**
     * False, used to pass a boolean false value in parameter.
     */
    static final String OP_PROXY_VALUE_FALSE = "false";

}
